<template>
    <view class="container">
        <view class="address-list" v-if="addressList.length > 0">
            <view class="item" @tap="addressAddOrUpdate" :data-address-id="item.id" v-for="(item, index) in addressList" :key="item.id">
                <view class="l">
                    <view class="name">{{ item.name }}</view>
                    <view class="default" v-if="item.isDefault">默认</view>
                </view>

                <view class="c">
                    <view class="mobile">{{ item.tel }}</view>
                    <view class="address">{{ item.addressDetail }}</view>
                </view>

                <view class="r">
                    <van-icon @tap.native.stop.prevent="deleteAddress" :data-address-id="item.id" class="del" name="delete" />
                </view>
            </view>
        </view>
        <view class="empty-view" v-if="addressList.length <= 0">
            <text class="text">收货地址还没有~~~</text>
        </view>
        <view class="add-address" @tap="addressAddOrUpdate" data-address-id="0">新建</view>
    </view>
</template>

<script>
var util = require('../../../utils/util.js');

var api = require('../../../config/api.js');

var app = getApp();
export default {
    data() {
        return {
            addressList: [],
            total: 0
        };
    },
    onLoad: function (options) {
        // 页面初始化 options为页面跳转所带来的参数
    },
    onReady: function () {
        // 页面渲染完成
    },
    onShow: function () {
        // 页面显示
        this.getAddressList();
    },
    onHide: function () {
        // 页面隐藏
    },
    onUnload: function () {
        // 页面关闭
    },
    methods: {
        getAddressList() {
            let that = this;
            util.request(api.AddressList).then(function (res) {
                if (res.errno === 0) {
                    that.setData({
                        addressList: res.data.list,
                        total: res.data.total
                    });
                }
            });
        },

        addressAddOrUpdate(event) {
            console.log(event); //返回之前，先取出上一页对象，并设置addressId

            var pages = getCurrentPages();
            var prevPage = pages[pages.length - 2];

            if (prevPage.route == 'pages/checkout/checkout') {
                try {
                    uni.setStorageSync('addressId', event.currentTarget.dataset.addressId);
                } catch (e) {}

                let addressId = event.currentTarget.dataset.addressId;

                if (addressId && addressId != 0) {
                    uni.navigateBack();
                } else {
                    uni.navigateTo({
                        url: '/pages/ucenter/addressAdd/addressAdd?id=' + addressId
                    });
                }
            } else {
                uni.navigateTo({
                    url: '/pages/ucenter/addressAdd/addressAdd?id=' + event.currentTarget.dataset.addressId
                });
            }
        },

        deleteAddress(event) {
            console.log(event.target);
            let that = this;
            uni.showModal({
                title: '',
                content: '确定要删除地址？',
                success: function (res) {
                    if (res.confirm) {
                        let addressId = event.target.dataset.addressId;
                        util.request(
                            api.AddressDelete,
                            {
                                id: addressId
                            },
                            'POST'
                        ).then(function (res) {
                            if (res.errno === 0) {
                                that.getAddressList();
                                uni.removeStorage({
                                    key: 'addressId',
                                    success: function (res) {}
                                });
                            }
                        });
                        console.log('用户点击确定');
                    }
                }
            });
            return false;
        }
    }
};
</script>
<style>
@import './address.css';
</style>
